//package com.project.utils;
//
//
//
//import com.baomidou.mybatisplus.annotation.IdType;
//import com.baomidou.mybatisplus.generator.AutoGenerator;
//import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
//import com.baomidou.mybatisplus.generator.config.GlobalConfig;
//import com.baomidou.mybatisplus.generator.config.PackageConfig;
//import com.baomidou.mybatisplus.generator.config.StrategyConfig;
//import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
//
//public class CodeGenerator {
//    public static void main(String[] args) {
//        //1.获取代码生成器的对象
//        AutoGenerator autoGenerator = new AutoGenerator();
//
//        //设置数据库相关配置
//        DataSourceConfig dataSource = new DataSourceConfig();
//        dataSource.setDriverName("com.mysql.jdbc.Driver");//设置1
//        dataSource.setUrl("jdbc:mysql://39.101.64.201:3308/db_api?useSSL=false");
//        dataSource.setUsername("root");
//        dataSource.setPassword("12345679abcABC");
//        autoGenerator.setDataSource(dataSource);
//
//        //设置全局配置
//        GlobalConfig globalConfig = new GlobalConfig();
//        globalConfig.setOutputDir(System.getProperty("user.dir")+"/src/main/java");    //设置代码生成位置,这里需要改动的就是user-service换成自己的项目模块名,和下面的模块名不是一个意思,下面的模块名只是一个变量名而已，而这里的是项目的模块名
//        globalConfig.setOpen(false);    //设置生成完毕后是否打开生成代码所在的目录
//
//        globalConfig.setAuthor("Ao");    //设置作者
//        globalConfig.setFileOverride(true);     //设置是否覆盖原始生成的文件
//        globalConfig.setMapperName("%sMapper");    //设置数据层接口名，%s为占位符，指代模块名称,模块名 = 数据库表名 - 前缀名.在下面的策设置中有设置模块名
//        globalConfig.setServiceName("%sService"); // 设置Service接口的命名方式,这样生成的没有I开头
////        globalConfig.setIdType(IdType.ASSIGN_ID);   //设置Id生成策略,雪花算法,这一行配置好像没用，id仍然使用自增了，记得去表里注释掉自增id
//        autoGenerator.setGlobalConfig(globalConfig);
//
//        //设置包名相关配置
//        PackageConfig packageInfo = new PackageConfig();
//        packageInfo.setParent("com.project");   //设置生成的包名，与代码所在位置不冲突，二者叠加组成完整路径
//        packageInfo.setEntity("entity");    //设置实体类包名
//        packageInfo.setMapper("mapper");   //设置数据层包名
//        autoGenerator.setPackageInfo(packageInfo);
//
//        //策略设置
//        StrategyConfig strategyConfig = new StrategyConfig();
////        strategyConfig.setInclude("user");  //设置当前参与生成的表名，参数为可变参数
//        strategyConfig.setInclude("user_db");  //设置当前参与生成的表名，参数为可变参数
////        strategyConfig.setTablePrefix("tb_");  //设置数据库表的前缀名称，模块名 = 数据库表名 - 前缀名  例如： User = tbl_user - tbl_
//
//        strategyConfig.setRestControllerStyle(true);    //设置是否启用Rest风格
////        strategyConfig.setVersionFieldName("version");  //设置乐观锁字段名
////        strategyConfig.setLogicDeleteFieldName("deleted");  //设置逻辑删除字段名
//        strategyConfig.setEntityLombokModel(true);  //设置是否启用lombok
//        strategyConfig.setNaming(NamingStrategy.underline_to_camel); // 将数据库表名转换为驼峰命名法
//        strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel); // 将数据库字段名转换为驼峰命名法
//        autoGenerator.setStrategy(strategyConfig);
//        //2.执行生成操作
//        autoGenerator.execute();
//    }
//}
